package io.swagger.models;

public class Xml {
	/*
	 * "name": { "type": "string"}, "namespace": { "type": "string" }, "prefix": {
	 * "type": "string" }, "attribute": { "type": "boolean" }, "wrapped": { "type":
	 * "boolean" }
	 */
	private String name;
	private String namespace;
	private String prefix;
	private Boolean attribute;
	private Boolean wrapped;

	public Xml name(String name) {
		this.setName(name);
		return this;
	}

	public Xml namespace(String namespace) {
		this.setNamespace(namespace);
		return this;
	}

	public Xml prefix(String prefix) {
		this.setPrefix(prefix);
		return this;
	}

	public Xml attribute(Boolean attribute) {
		this.setAttribute(attribute);
		return this;
	}

	public Xml wrapped(Boolean wrapped) {
		this.setWrapped(wrapped);
		return this;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getNamespace() {
		return this.namespace;
	}

	public void setNamespace(String namespace) {
		this.namespace = namespace;
	}

	public String getPrefix() {
		return this.prefix;
	}

	public void setPrefix(String prefix) {
		this.prefix = prefix;
	}

	public Boolean getAttribute() {
		return this.attribute;
	}

	public void setAttribute(Boolean attribute) {
		this.attribute = attribute;
	}

	public Boolean getWrapped() {
		return this.wrapped;
	}

	public void setWrapped(Boolean wrapped) {
		this.wrapped = wrapped;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((attribute == null) ? 0 : attribute.hashCode());
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + ((namespace == null) ? 0 : namespace.hashCode());
		result = prime * result + ((prefix == null) ? 0 : prefix.hashCode());
		result = prime * result + ((wrapped == null) ? 0 : wrapped.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		Xml other = (Xml) obj;
		if (attribute == null) {
			if (other.attribute != null) {
				return false;
			}
		} else if (!attribute.equals(other.attribute)) {
			return false;
		}
		if (name == null) {
			if (other.name != null) {
				return false;
			}
		} else if (!name.equals(other.name)) {
			return false;
		}
		if (namespace == null) {
			if (other.namespace != null) {
				return false;
			}
		} else if (!namespace.equals(other.namespace)) {
			return false;
		}
		if (prefix == null) {
			if (other.prefix != null) {
				return false;
			}
		} else if (!prefix.equals(other.prefix)) {
			return false;
		}
		if (wrapped == null) {
			if (other.wrapped != null) {
				return false;
			}
		} else if (!wrapped.equals(other.wrapped)) {
			return false;
		}
		return true;
	}

	public Object clone() {
		return new Xml().attribute(attribute == null ? null : Boolean.valueOf(attribute)).name(name)
				.namespace(namespace).prefix(prefix).wrapped(wrapped == null ? null : Boolean.valueOf(wrapped));
	}
}